from flask import Flask,request,jsonify
import json
# 实例化对象
app = Flask(__name__)
# 加载配置文件
from config import Config
app.config.from_object(Config)
# 跨域配置
from flask_cors import CORS
CORS(app)
# 实现orm，对相关希映射
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)

# 创建分类表
class Cate(db.Model):
    __tablename__='cate'
    id = db.Column(db.Integer,primary_key=True,autoincrement=True)
    name = db.Column(db.String(50),unique=True) # 名称唯一
    level = db.Column(db.Integer,default=1)     # 等级
    pid =  db.Column(db.Integer,default=0)      # 顶级的父id为0

# db.create_all()

# 分类接口（增删改查）
@app.route('/cateM',methods=['POST','GET','DELETE'])
def cateM():
    if request.method =="POST":
        #获取参数
        data = request.data
        #对参数进行验证，如果有json.loads()
        if data:
            data = json.loads(data)
        #如果没有去form中获取
        else:
            data = request.form
        #添加
        cate = Cate(name=data['name'])
        db.session.add(cate)
        #提交
        db.session.commit()
        #返回结果
        return jsonify({"code":200})
    elif request.method == "GET":
        # 查询所有数据
        # 1.获取所有数据
        # 分页
        page = int(request.args.get('page'))
        # 每页显示两条
        page_size = 2
        # cates = Cate.query.all()
        start = (page-1)*page_size
        cates = Cate.query.offset().limit(page_size)
        # 2.把数据封装成列表
        list = []
        # 判断有分类
        if cates:
            # 遍历加到列表中
            for i in cates:
                dict = {'id':i.id,'name':i.name}
                list.append(dict)
        # 3.返回json
        # 获取一共有多少
        total = Cate.query.count()
        return jsonify({"code":200,"list":list,"total":total})
    elif request.method == "DELETE":
        return 'ok'


if __name__=="__main__":
    app.run(debug=True)

